#!/usr/bin/python3
import numpy as np
import matplotlib.pyplot as plt

gamblers=100
def casino(win_rate, win_once=1, loss_once=1, commission=0.01):
    my_money=1000
    play_cnt=10000
    #print(my_money)
    #commission: 手续费简单设置为0.01 即1%
    commission=commission
    #print(commission)
    for _ in np.arange(0,play_cnt):
        # 使用伯努利分布，根据win_rate来获取输赢
        w=np.random.binomial(1, win_rate)
        if w:
            # 赢了，+ win_once
            my_money+=win_once
        else:
            my_money-=win_once
        my_money-=commission
        if my_money<=0:
            break
    return my_money

# 假定天堂赌场，没有老千，也没有抽头
# 100个赌徒进场，胜率0.5，赔率1，还没手续费
heaven_moneys=[casino(0.5,commission=0) for _ in np.arange(0, gamblers)]
print(heaven_moneys)
# 假定天堂赌场，有老千，没有抽头，导致胜率只能达到0.4
# 100个赌徒进场，胜率0.4，赔率1，还没手续费
cheat_moneys=[casino(0.4,commission=0) for _ in np.arange(0, gamblers)]
# 假定天堂赌场，没有老千，手续费0.01的情况
# 100个赌徒进场，胜率0.5，赔率1，还没手续费
cheat_moneys=[casino(0.5,commission=0.01)  for _ in np.arange(0, gamblers)]

plt.hist(heaven_moneys,bins=30)
plt.show()